const path = require('path');


function resolve(dir) {
    return path.join(__dirname, dir)
}

module.exports = {
    // 基本路径
    publicPath: "/",
    // 输出文件目录
    outputDir: "dist",
    // eslint-loader 是否在保存的时候检查
    lintOnSave: false,

    configureWebpack: config => {
        config.externals = {
            'vue': 'Vue',
            'vuex': "Vuex",
            'vue-router': 'VueRouter',
        }
		config.optimization = {
			splitChunks: {
				chunks: 'all',
				maxInitialRequests: Infinity, // 默认为3，调整为允许无限入口资源
				minSize: 20000, // 20K以下的依赖不做拆分
				cacheGroups: {
					vendors: {
						// 拆分依赖，避免单文件过大拖慢页面展示
						// 得益于HTTP2多路复用，不用太担心资源请求太多的问题
						name(module) {
							// 拆包
							const packageName = module.context.match(/[\\/]node_modules[\\/](.*?)([\\/]|$)/)[1]
							// 进一步将Ant组件拆分出来,请根据情况来
							// const packageName = module.context.match(/[\\/]node_modules[\\/](?:ant-design-vue[\\/]es[\\/])?(.*?)([\\/]|$)/)[1]
							return `${packageName.replace('@', '')}` // 部分服务器不允许URL带@
						},
						test: /[\\/]node_modules[\\/]/,
						priority: -10,
						chunks: 'all'
					},
				}
			}
		}
	},
    // 生产环境是否生成 sourceMap 文件
    productionSourceMap: false,
    parallel: require("os").cpus().length > 1,
    chainWebpack: (config) => {
        config.resolve.alias
            .set("@", resolve("./src"))
            .set("assets", resolve("./src/assets"))
    },
    // devServer: {
    //     open: true,
    //     proxy: {
    //         '/adminweb': {
    //             target: 'http://192.168.3.77:8080/'
    //             ws: false,
    //             changeOrigin: true,
    //             pathRewrite: {
    //                 '^/web': 'http://192.168.3.77:8080/'
    //             }
    //         },
    //     }
    // },
    devServer: {
        open: true,
        proxy: {
            '/adminweb': {
                target: 'http://ydts3.hbwlife.com/',
                ws: false,
                changeOrigin: true,
                pathRewrite: {
                    '^/web': 'http://ydts3.hbwlife.com/',
                }
            },
        }
    },
    // 第三方插件配置
    pluginOptions: {},
    css: {
        sourceMap: false // 开启 CSS source maps
    }
};